# 读取JSON格式数据 - 绘制震级散点图
import json
import plotly.express as px
# ImportError: Plotly express requires pandas to be installed.
# run command: pip install pandas

filename = 'data/eq_data_1_day_m1.json'
with open(filename) as f:
    # json.load()将数据转化为Python能够处理的格式
    all_eq_data = json.load(f)

# 提取'features'相关联的数据
all_eq_dicts = all_eq_data['features']
# print(len(all_eq_dicts))

mags, titles, lons, lats = [], [], [], []

for eq_dict in all_eq_dicts:
    # 提取震级
    mag = eq_dict['properties']['mag']
    title = eq_dict['properties']['title']
    # longitude 经度
    lon = eq_dict['geometry']['coordinates'][0]
    # latitude 纬度
    lat = eq_dict['geometry']['coordinates'][1]
    mags.append(mag)
    titles.append(title)
    lons.append(lon)
    lats.append(lat)

""" 
print(mags[:10])
print(titles[:2])
print(lons[:5])
print(lats[:5])
"""

fig = px.scatter(
    x=lons,
    y=lats,
    labels={'x': '经度', 'y': '纬度'},
    range_x=[-200, 200],
    range_y=[-90, 90],
    width=800,
    height=800,
    title='全球地震散点图'
)

fig.show()

fig.write_html('data/global_earthquakes.html')

